package com.hfi.command.demo02;

import com.hfi.command.demo02.xml.SmartControlInitializer;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

/**
 * @author ChangLiang
 * @date 2020/4/15
 */
public class App {

    @Test
    @DisplayName("SmartControl User")
    public void test() {

        // do nothing
        SmartControl smartControl = new SmartControl();

        // Command模式的作用就是：
        // 把发出命令的对象SmartControl 与 具体执行命令的对象 各个Command 进行了解耦

        // init Smart Control
        SmartControlInitializer initializer = new SmartControlInitializer(smartControl);
        initializer.init();

        // door on
        smartControl.onButtonPressed(0);
        // light on
        smartControl.onButtonPressed(1);
    }
}
